// ----------------------------------------------------------------------------
/**
 * @file    removeBuddy.h
 *
 * @brief   Header file for removeBuddy.cpp
 *
 * The remove buddy window allows the user to remove friends from their friends list.
 *
 * @author  Siddharth Sathyam <ssathy2@gmail.com>
 * @author  Alan Ruvalcaba <aruval3@gmail.com>
 * @author  Patrick LaMontagna <plamontagna@gmail.com
 *
 * @version 1.0
 *
 * @date    November 24th, 2011
 *
 */
// ----------------------------------------------------------------------------

#ifndef REMOVEBUDDY_H
#define REMOVEBUDDY_H

#include <QDialog>
#include <QMessageBox>

namespace Ui {
    class removeBuddy;
}

/**
 * @class   removeBuddy
 *
 * @brief   The removeBuddy helper methods
 *
 */

class removeBuddy : public QDialog
{
    Q_OBJECT

    signals:

        /**
        * @brief Signal that sends out the remove friend to the server
        *
        * @param personToRemove The username of the person to remove from friends
        */

	void sendRemoveFriendRequest(QString personToRemove);

    private slots:

        /**
        * @brief Slot that takes in a valid friend removal request
        *
        * @param personToRemove The username of the person to remove from friends
        * @param isValid A boolean value to make sure a valid removal is happening
        */

	void handleIncomingIsValidRemoveFriendRequest(QString, bool);

        /**
        * @brief Slot that determines if the user clicks the remove button
        */

	void on_removeButton_clicked();

        /**
        * @brief Slot that determines if the user clicks the cancel button
        */

	void on_cancelButton_clicked();

    public:

        /// Constructor for removeBuddy
	removeBuddy(QWidget *parent, QString personSendingRemoveRequest);

        /// Deconstructor for removeBuddy
	~removeBuddy();

    private:

        /**
        * @brief Method that displays the user options to remove a buddy
        *
        * @param msgToDisplat The message to display the user requesting a buddy removal
        */

	void displayMessage(QString msgToDisplay);

        /// variable to determine the person sending a request
	QString personSendingRequest;

	Ui::removeBuddy *ui;
};

#endif // REMOVEBUDDY_H
